package com.example.gaoyang.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.gaoyang.domain.SysRole;
import com.example.gaoyang.domain.request.SysRoleRequest;
import com.example.gaoyang.domain.vo.SysRoleVO;
import com.example.gaoyang.request.Result;

import java.util.List;

public interface SysRoleService extends IService<SysRole> {

    /**
     * 新增角色
     * @param sysRoleRequest
     * @return
     */
    void addSysRole(SysRoleRequest sysRoleRequest);

    /**
     * 新增角色和元素关联
     * @param sysRoleRequest
     * @return
     */
    void addRoleAndElement(SysRoleRequest sysRoleRequest);

    /**
     * 删除角色
     * @param sysRoleRequest
     * @return
     */
    void removeSysRole(SysRoleRequest sysRoleRequest);

    /**
     * 删除角色和元素关联
     * @param sysRoleRequest
     * @return
     */
    void removeRoleAndElement(SysRoleRequest sysRoleRequest);

    /**
     * 获取角色列表
     * @param sysRoleRequest
     * @return
     */
    List<SysRoleVO> getSysRoleList(SysRoleRequest sysRoleRequest);

    /**
     * 获取角色分页列表
     * @param page
     * @param sysRoleRequest
     * @return
     */
    IPage<SysRoleVO> getSysRolePage(IPage<SysRole> page, SysRoleRequest sysRoleRequest);

    /**
     * 修改角色
     * @param sysRoleRequest
     * @return
     */
    void updateSysRole(SysRoleRequest sysRoleRequest);

    /**
     * 修改角色和元素关联
     * @param sysRoleRequest
     * @return
     */
    void updateRoleAndElement(SysRoleRequest sysRoleRequest);

}
